In today's market, it is not uncommon to find multiple software applications that perform similar functions but which are based on incompatible data formats. For example, the two software applications, Microsoft Word® and WordPerfect®, are both word-processing programs. They can each be used to create or generate similar documents. However, although the two programs can be used to perform similar functions, they each support, and therefore generate, documents or files using their own particular data format. Thus, the documents or files that are created using the software application Word® contain a data format that is incompatible and not supported by the software application WordPerfect®. Likewise, the documents or files that are created using the software application WordPerfect® contain a data format that is incompatible and not supported the software application Word®.
To resolve the problem of incompatible data formats, many programs include routines or functions that can be used to translate a document or file that was created by a first application (“source application”), into a document or file that has a data format that is supported by a second application (“target application”). For example, the software application Word® includes a set of software translation routines or functions that can translate a document or file that was created by WordPerfect® into a document or file that has a data format that is supported by Word®.
For the purpose of explanation, the data format supported by a source application is referred to herein as the source data format, and the data format supported by a target application is referred to as the target data format. Thus, in the example given above, the source data format is the format used by WordPerfect®, while the target data format is the format used by Word®.
A drawback with translating a document or file from a source data format into a target data format is that the conversion is typically performed as a one-time translation. That is, each translation is made without regard to any changes that may have been made by the target application to a previous converted copy of the file. For example, a source application, which uses a data format “A”, may be used to generate data having a data format “A”. If the data is to be used by a target application which uses a data format “B”, the data must be first translated from data format “A” (“initial data”) to a data format “B” (“converted data”). Once the data is translated, the target application may be used to change and modify the converted data as needed. However, if the source application is used subsequently to update the initial data, performing a second translation will conventionally cause either the changes made by the target application to be lost or duplicated data to be included in the second conversion. For many applications, converting data without regard to changes that have been made at the target application is unacceptable as those changes that are lost will need to be re-entered.
In the area of computer design software, two different types of programs are generally used to simulate the architecture and physical layout of a particular design. In certain cases, the two different types of programs may include a computer aided design (CAD) application and a visual rendering application. Although both types of computer design applications can be used to design and define both two-dimensional and three-dimensional objects, they are each used to solve a different set of problems for generating a design layout.
CAD applications, such as AutoCAD® R14, which is commercially available from Autodesk Inc., include a popular set of software design tools that can be used to perform the CAD functions. CAD applications are typically used to develop an initial description for the objects that are to be created in a layout. In general, a CAD application will generally use high precision variables, such as double precision floating point variables, in describing a particular object. Thus, the CAD applications provide a more precise description of an object than the visual rendering applications and are generally used to produce working drawings or construction documents of the layout. The construction documents provide a schematic type of view that generally depicts the objects two-dimensionally and is typically used to provide a specification for what needs to be built and how it is to be built.
In generating a construction document, the CAD application uses a particular set of “design” attributes to describe the objects that are to be contained in the layout. The design attributes consist of an object geometry that describes the particular geometry of the object and a set of object properties that when applied enhance or modify the particular object. For example, an object's geometry may consist of a set of lines and vertices that define a rectangular object or a point and radius that define a circular object. Alternatively, the set of object properties may include a thickness property and a color property that respectively cause the object to be displayed as a cylinder that is of the color red. In addition, certain CAD applications also allow objects to be annotated by providing object properties that allow users to associate text with certain objects. The annotation can be used to attach descriptive information to certain objects within the construction document.
Visual rendering applications, such as 3D Studio VIZ™, which is commercially available from Autodesk, Inc., include a popular set of software design tools that can be used to perform visual rendering application functions, such as modeling, rendering and animation. Visual rendering applications allow the user to enhance and extend the output that is generated by the CAD application once the objects are displayed in a rendered scene (“target scene”). Geometry can also be modeled and rendered without CAD objects.
While a CAD application typically uses design attributes, a visual rendering application uses a set of “rendering attributes”. The rendering attributes used by a visual rendering application depict objects in a target scene in three-dimensions and can be used to provide a more realistic view of what the finished design will look like. By contrast, the construction document provides a schematic view.
Similar to the design attributes, the rendering attributes consist of an object geometry that describes the particular geometry of the object and a set of object properties that, when applied, enhance or modify the particular object. However, the object properties associated with the visual rendering application provide a different set of enhancements or modifications to the particular object than the type of enhancements that can be done using the object properties provided by CAD applications. For example, the object properties associated with a visual rendering application typically allow objects to be viewed in a target scene as having a particular texture or material, or to visualize how certain lighting would look when applied to a particular object. Some visual rendering applications also allow certain objects to be animated so as to move or change over a period of time. Thus, the visual rendering application uses a particular set of “rendering” attributes that do not directly map to similar design attributes that are used in the CAD application.
In general, to create a design layout, a user interfaces first with a CAD application to generate an initial construction document of a desired layout. The construction document is generated using a particular set of design attributes that describes a particular geometry and set of properties for each object. Once the construction document is generated the visual rendering program is used to add texture, lighting and other design features to the objects that are not supported by the CAD application.
However, because the data format that is used by the CAD application is incompatible and not supported by the visual rendering application, a translation must be performed to convert the CAD application design attributes into corresponding rendering attributes that are supported by the visual rendering application. FIG. 1 illustrates a conventional translation process 100 for translating object geometries from a CAD application 102 (“source application”) to a visual rendering application 104 (“target application”). In this example, CAD objects are created and defined using the CAD application 102. The CAD object definitions are created using a data format (“source data format”) that is native to the CAD application 102 and are typically stored in one or more CAD files 106 (“source files”). In AutoCAD® R14, the CAD files 106 are generally known as .DWG files. A translation 110 is performed to import the CAD object definitions from the CAD application 102 into a visual rendering application 104 (“target application”). In performing the translation 110, the CAD object definitions are translated from their source data format to a rendering data format (“target data format”) that is native to the visual rendering application 104. The visual rendering application 104 typically maintains the rendering object definitions in one or more rendering files 108 (“target files”). In 3D Studio VIZ™, the rendering files 108 are generally known as .MAX files.
One drawback with translating the CAD design attributes into a set of rendering attributes is that CAD attributes that do not map directly into rendering attributes are lost. Another common problem with translating the CAD design attributes into a set of rendering attributes is that once the conversion is performed any dependencies between the objects in the CAD application and the visual rendering application are lost. Thus, as is often the case, if updates are made to the design attributes on the CAD application side subsequent to the first translation, either (1) a subsequent translation is required for the design attribute changes to be reflected in the rendering environment; or (2) the design attribute changes must be reapplied manually in the rendering environment which is a duplication of effort.
Unfortunately, between the time of the first translation and the second translation, changes may have been made to the rendering attributes on the visual rendering application side. If such intervening changes have occurred, then performing a second translation to convert the updated CAD design attributes into a corresponding set of rendering attributes will either (1) cause the intervening changes made by the visual rendering application to be lost; or (2) cause unwanted (duplicate) objects to be introduced into the rendering application.
For example, a CAD application may be used to create three objects (A1, A2 and A3). Object A1 has a height of ten (“10”), object A2 has a height of five (“5”) and object A3 has a height of two (“2”). In performing a first translation, the three objects (A1, A2 and A3) are converted into three objects (B1, B2 and B3) having corresponding heights of ten (“10”), five (“5”) and of two (“2”). Through the use of the visual rendering application, object B1 is modified to have a height of eight (“8”) and objects B2 and B3 are modified to have a brick-like texture. If an update is then performed to objects (A1, A2, and A3) using the CAD application such that a second translation is required to be performed, either (1) the changes made by the visual rendering application to objects (B1, B2 and B3) will be over-written and thus lost by the updates made by the CAD application; or (2) the second conversion will cause the updated objects (A1, A2, and A3) to be converted into an additional set of objects (B4, B5 and B6) thus introducing unwanted duplicates of the objects.
On one hand, in the case where the changes made by the visual rendering application are lost, the user must re-enter and perform all changes that were previously made using the visual rendering application. On the other hand, if duplicate objects are inadvertently introduced into the visual rendering application data by the second translation, the user must identify and remove those objects and/or updates that were incorrectly and unwittingly introduced.
In addition, in the case where a large number of objects are required for a particular layout, or a significant number of changes or updates are made in either the CAD application or the visual rendering application, the drawback associated with translating objects a second time from a first data format to a second data format is significantly increased.
Based on the foregoing, it is highly desirable to provide a mechanism that allows changes or updates made by two different applications having two different data formats to be correctly reflected in a target data format when translated from a source data format.